package com.shopping.dao;


import com.shopping.pojo.Product;
import com.shopping.pojo.vo.ProductInfo;
import com.shopping.pojo.vo.ProductSpecInfo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface ProductDao {
    // 获取商品列表
    public List<ProductSpecInfo> selectProductByQuery(@Param("productName") String productName, @Param("businessName") String businessName, @Param("cateName") String cateName, @Param("start") int start, @Param("limit") int limit);
    // 获取商品列表数量
    public int getProductNum(@Param("productName") String productName, @Param("businessName") String businessName, @Param("cateName") String cateName);
    // 商品强制下架
    public int updateProductStatusCompulsory(Integer productId);
    // 允许商品上架
    public int updateProductStatusAllow(Integer productId);
    // 获取商家上架中的商品
    public int getBusinessProductsNum(Integer id);
    // 根据商家查询商品信息
    public List<Product> selectBusinessProductByProductName(String businessId,String productName);
    // 商品上架
    public int updateProductPutOnSale(Integer productId);
    // 商品下架
    public int updateProductPullOff(Integer productId);
    // 删除商品
    public int deleteProduct(Integer productId);
    public int updateProductDelete(Integer productId);
    // 新增商品
    public int insertProduct(Product product);
    // 修改商品
    public int updateProduct(Product product);
    // 首页商品推荐
    public List<ProductInfo> selectMainRecommendProduct();
    // 首页新品推荐
    public List<ProductInfo> selectMainNewProduct();
    // 搜索页根据商品名称搜索商品
    public List<ProductInfo> selectProductByProductName(String productName);
    // 获取商品详情信息
    public ProductInfo selectProductInfoByProductId(Integer productId);
    // 获取店铺产品信息
    public List<ProductInfo> selectProductInfoByBusinessIdAndProductName(@Param("businessId") String businessId,@Param("productName") String productName);
    // 搜索页根据分类搜索商品
    public List<ProductInfo> selectProductByCateName(String cateName);
    // 验证商品分类
    public int checkProductByCateId(Integer categoryId);
}
